package com.lumlord.common.annotation;

/*
 * Copyright 2002-2017 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.web.bind.annotation.Mapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface Api {
	/**
	 * 模块名称
	 */
	String moduleName() default ""; 
	 /**
	  * 请求地址
	  * @return
	  */
	String[] path() default {};
	
	/**
	   *   请求方式 
	 * @return
	 */
	RequestMethod[] method() default {};
	/**
	 * 模块名称
	 * @return
	 */
	String actionName() default "";
	/**
	 * 是否是json请求
	 * @return
	 */
	boolean isJsonRequest() default true;
	
	/**
	 * 是否返回json结果数据
	 * @return
	 */
	boolean isJsonResponse() default true;
	/**
	 * 映射地址/admin?add
	 * @return
	 */
	String[] params() default {};
	
	/**
	   * 获取当前用户
	 * @return
	 */
	boolean feachCurrentUser() default true;
	/**
	  * 是否打印日志
	 * @return
	 */
	boolean isLog() default true;
	
	/**
	 *  默认是需要验证 false 去做拦截
	 *  设置为true 则 不去做拦截
	 * @return
	 */
	boolean isAllow() default false;
	/**
	 * 命名空间 取代 console className 
	 * @return
	 */
	String NameSpace() default "";
}	

